#include <iostream>
#include <cstdlib>
#include <queue>
using namespace std;
typedef struct binode
{
    int data;
    struct binode *lchild;
    struct binode *rchild;
} binode, *bitree;
/* 
非递归交换二叉树的左右孩子
 */
void sub(bitree &t)
{
    queue<bitree> q;
    bitree p;
    if (!t)
    {
        // 空树直接返回
        return;
    }
    q.push(t);
    while (!q.empty())
    {
        p = q.front();
        q.pop();
        if (p->lchild != nullptr)
        {
            q.push(p->lchild);
        }
        if (p->rchild != nullptr)
        {
            q.push(p->lchild);
        }
        bitree tmp;
        tmp = p->lchild;
        p->lchild = p->rchild;
        p->rchild = tmp;
    }
}

int main(int argc, char const *argv[])
{

    return 0;
}
